package storm2;// -*- codeing: utf-8 -*-

// @Time     :2021/12/10 11:55
// @Author   :郭荣杰
//@File      :StormRedis.java
//@Software  : IntelliJ IDEA

import org.apache.storm.topology.BasicOutputCollector;
import org.apache.storm.topology.OutputFieldsDeclarer;
import org.apache.storm.topology.base.BaseBasicBolt;
import org.apache.storm.tuple.Tuple;


/**     实现功能
 * *（5） 展示截止当前时间销量排名前 10 的图书排行榜；
 *  存储在redis Top10Books
 *  （6） 展示截止当前时间销量排名前 10 的出版社排行榜；
 *        展示不同类型课本销售额
 */
public class Bolt_Top_10_Books extends BaseBasicBolt {
    //127.0.0.1
    //192.168.179.140
    static  JRedisUtil jredis = new JRedisUtil("127.0.0.1",6379);
    public void execute(Tuple input, BasicOutputCollector collector) {

        try {
            /**
             *      得到书名和购买数量，统计每本书销售数量，实现销量排名前10的图书排行榜
             *      得到出版社和购买数量，统计每个出版社销售数量，实现销售排名前10的出版社排行榜
             *      得到书籍类型和购买数量，统计每个书籍类型数量
             *      利用购买数量，统计总销售书籍数量
             */
            String book_name = input.getStringByField("book_name");
            int book_num = input.getIntegerByField("book_num");
            String book_press=input.getStringByField("book_press");
            String book_type=input.getStringByField("book_type");
            jredis.zincrby("Top10Books",book_num,book_name);
            jredis.zincrby("Top10Press",book_num,book_press);
            jredis.zincrby("Top10BookType",book_num,book_type);
            jredis.incrBy("TotalBooksNum",book_num);
        }catch (Exception e){
//            e.printStackTrace();
            System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        }
        finally {
            System.out.println("*************************************");
        }

    }
    public void declareOutputFields(OutputFieldsDeclarer declarer) {

    }
}